home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Dev / GNU-TILE-FORTH.lha / tst / bnf.tst < prev    next >
Text File  |  1992-05-19  |  2KB  |  135 lines

  1. .( Loading Backus-Naur Form test...) cr
  2.  
  3. #include parser.f83
  4. #include bnf.f83
  5.  
  6. parser forth definitions
  7.  
  8. : first ." first " ;
  9. : next  ." next " ;
  10. : last  ." last " ;
  11.  
  12. .( 1: Example of execution order: Right-to-left) cr
  13.  
  14. symbol a
  15. symbol ,
  16.  
  17. bnf interact
  18.  
  19. <a> ::= a , <a> @ next
  20.      |  a @ last
  21.  
  22. forth
  23.  
  24. a parse" a " cr
  25. a parse" a , a " cr
  26. a parse" a , a , a " cr
  27. a parse" a , a , a , a " cr
  28.   
  29.   
  30. .( 2: Example of inverse exection order: Left-to-right) cr
  31.  
  32. symbol a
  33. symbol b
  34. symbol c
  35. symbol d
  36. symbol ,
  37.  
  38. bnf interact
  39.  
  40. <a> ::= <b> <c>
  41.      |  <b>
  42. <b> ::= a , @ first
  43.      |  a @ first
  44. <c> ::= <d> <c>
  45.      |  <d>
  46. <d> ::= a , @ next
  47.      |  a @ last
  48.  
  49. forth
  50.  
  51. a parse" a " cr
  52. a parse" a , a " cr
  53. a parse" a , a , a " cr
  54. a parse" a , a , a , a " cr
  55.   
  56. .( 3: Example of factorization to minimize backtracking) cr
  57.  
  58. symbol a
  59. symbol b
  60. symbol ,
  61.  
  62. bnf interact
  63.  
  64. <a> ::= a <b>
  65. <b> ::= , <a> @ next
  66.      |  <empty> @ last
  67.  
  68. forth
  69.  
  70. a parse" a " cr
  71. a parse" a , a " cr
  72. a parse" a , a , a " cr
  73. a parse" a , a , a , a " cr
  74.   
  75. .( 4: Example of Extended Backus-Naur Form: Zero or one time) cr
  76.  
  77. symbol a
  78. symbol b
  79. symbol c
  80. symbol ,
  81.  
  82. bnf interact
  83.  
  84. <a> ::= [ <b> ] <c> a @ last
  85. <b> ::= a , @ first
  86. <c> ::= a , <c> @ next
  87.      |  <empty>
  88.  
  89. forth
  90.  
  91. a parse" a " cr
  92. a parse" a , a " cr
  93. a parse" a , a , a " cr
  94. a parse" a , a , a , a " cr
  95.   
  96. .( 5: Example of Extended Backus-Naur Form: Zero or many times) cr
  97.  
  98. symbol a
  99. symbol b
  100. symbol ,
  101.  
  102. bnf interact
  103.  
  104. <a> ::= a { <b> } @ first
  105. <b> ::= , a @ next
  106.  
  107. forth
  108.  
  109. a parse" a " cr
  110. a parse" a , a " cr
  111. a parse" a , a , a " cr
  112. a parse" a , a , a , a " cr
  113.   
  114. .( 6: Example of Extended Backus-Naur Form: Zero or one or many times) cr
  115.  
  116. symbol a
  117. symbol b
  118. symbol c
  119. symbol ,
  120.  
  121. bnf interact
  122.  
  123. <a> ::= [ <b> ] { <c> } a @ last
  124. <b> ::= a , @ first
  125. <c> ::= a , @ next
  126.  
  127. forth
  128.  
  129. a parse" a " cr
  130. a parse" a , a " cr
  131. a parse" a , a , a " cr
  132. a parse" a , a , a , a " cr
  133.   
  134. forth only
  135.